package cn.echo.consul.manager.service;

import cn.echo.consul.manager.entity.Token;
import cn.echo.consul.manager.entity.UserInfo;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserInfoService {

    /**
     * 用户登录
     */
    Token login(String userId, String secret, String fingerprint);

    /**
     * 用户注册
     */
    void register(String userId, String userName, String secret, Boolean isAdmin, String creatorId);

    /**
     * 修改用户信息
     */
    void modify(String userId, String userName, Boolean isAdmin, Boolean usable, String updaterId);

    /**
     * 修改用户密码
     */
    void modifySecret(String userId, String newSecret, String reSecret, String updaterId);

    /**
     * 修改我的密码
     */
    void modifyMineSecret(String token, String oldSecret, String newSecret, String reSecret);

    /**
     * 获取用户信息列表
     */
    List<UserInfo> getUserList();

    /**
     * 获取用户信息
     */
    UserInfo getUserInfo(String userId);

    /**
     * 获取用户是否超管
     */
    Boolean getUserIsAdmin(String userId);
}
